classDiagram
    title 用户管理子系统类图 | User Management Subsystem Class Diagram
    
    %% 核心实体类 | Core Entity Classes
    class User {  %% 用户类
        -id: int  %% 用户ID
        -username: string  %% 用户名
        -email: string  %% 邮箱
        -password_hash: string  %% 密码哈希
        -phone: string  %% 手机号
        -avatar: string  %% 头像
        -bio: string  %% 个人简介
        -is_active: boolean  %% 是否激活
        -is_seller: boolean  %% 是否为卖家
        -created_at: datetime  %% 创建时间
        -updated_at: datetime  %% 更新时间
        -last_login: datetime  %% 最后登录时间
        
        %% 公有方法 | Public Methods
        +register(username: string, email: string, password: string): User  %% 注册用户
        +login(username: string, password: string): boolean  %% 用户登录
        +updateProfile(email: string, phone: string, bio: string): void  %% 更新用户资料
        +deactivate(): void  %% 停用账号
        +changePassword(old_password: string, new_password: string): boolean  %% 修改密码
        +verifyEmail(email: string): boolean  %% 验证邮箱
        
        %% Getter方法 | Getter Methods
        +getId(): int  %% 获取用户ID
        +getUsername(): string  %% 获取用户名
        +getEmail(): string  %% 获取邮箱
        +getPhone(): string  %% 获取手机号
        +getAvatar(): string  %% 获取头像
        +getBio(): string  %% 获取个人简介
        +getIsActive(): boolean  %% 获取是否激活状态
        +getIsSeller(): boolean  %% 获取是否为卖家
        +getCreatedAt(): datetime  %% 获取创建时间
        +getUpdatedAt(): datetime  %% 获取更新时间
        +getLastLogin(): datetime  %% 获取最后登录时间
        
        %% Setter方法 | Setter Methods
        +setUsername(username: string): void  %% 设置用户名
        +setEmail(email: string): void  %% 设置邮箱
        +setPhone(phone: string): void  %% 设置手机号
        +setAvatar(avatar: string): void  %% 设置头像
        +setBio(bio: string): void  %% 设置个人简介
        +setIsSeller(is_seller: boolean): void  %% 设置卖家状态
        +setLastLogin(last_login: datetime): void  %% 设置最后登录时间
        
        %% 私有方法 | Private Methods
        -hashPassword(password: string): string  %% 哈希密码
        -validateCredentials(username: string, password: string): boolean  %% 验证凭据
    }
    
    class Token {  %% 令牌类
        -access_token: string  %% 访问令牌
        -refresh_token: string  %% 刷新令牌
        -token_type: string  %% 令牌类型
        -expires_at: datetime  %% 过期时间
        
        %% 公有方法 | Public Methods
        +generate(user_id: int): Token  %% 生成令牌
        +validate(): boolean  %% 验证令牌
        +refresh(): Token  %% 刷新令牌
        +getAccessToken(): string  %% 获取访问令牌
        +getRefreshToken(): string  %% 获取刷新令牌
        +getTokenType(): string  %% 获取令牌类型
        +getExpiresAt(): datetime  %% 获取过期时间
        +isExpired(): boolean  %% 检查是否过期
        
        %% 私有方法 | Private Methods
        -generateTokenString(): string  %% 生成令牌字符串
        -validateTokenFormat(token: string): boolean  %% 验证令牌格式
    }
    
    %% 关联关系 | Association Relationships
    User "1" -- "*" Token : generates  %% 生成
    User "1" -- "*" Product : publishes  %% 发布
    User "1" -- "1" Wallet : has  %% 拥有